在開始之前我們先回顧目前都做了哪些準備,首先是intelliJ、JDK17、Forge MDK 三件套,在安裝完成後我們修改了toml檔與build.gradle檔,並填入一些重要資料,現在我們可以開始了解如何製作模組了。
在我們開始製作模組之前,我們先試試看在IntelliJ中打開Minecraft。點開右手邊的Gradle可以看到有幾個選項,我們選擇runclient,就可以打開Minecraft,像是一般遊戲一樣。
現在我們確定測試用遊戲可以正常開啟並執行,就可以開始程式撰寫了。
恭喜獲得第一個成就,盤點庫存。
我打算製作一個跟工業相關的模組,並圍繞這個主題製作相關的物品、方塊、合成表與生物等等,我們先開一個新的class,並命名ModItem,我們生成物品的程式碼就放這邊。
Forge提供的檔案中包含著一段程式碼,告訴你如何在Forge中註冊一個物品或方塊,我們可以照著這個格式去生成我們的第一個物品。
我們也可以在Forge官網中找到這幾段程式碼。
第一部分的程式碼可以創造出一個物品註冊器,我們之後都可以用這個註冊器去註冊各種不同的物品。
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID);
public static final 表示 公共、靜態的、不可變的,代表整個變數在接下來都是整個程式可以訪問,但是不能更改的。
DeferredRegister是Forge提供的註冊物品的方法,為了讓遊戲知道我們需要一個新的物品,或是方塊與其他像是聲音等等的新元素進入遊戲,我們需要向遊戲註冊他。
我們使用的Forge的register是我們向遊戲註冊物品時的註冊表,Forge 有多種不同類型的註冊表,
Block(方塊註冊):用於註冊自定義方塊。通常使用 Block 和 Block.Properties 類進行註冊。
Item(物品):用於註冊自定義物品。通常使用 Item 類進行註冊。
Biome(生態群系)註冊:用於註冊自定義生態群系,這些群系定義了地形和生物分佈。
Entity(實體)註冊:用於註冊自定義生物、實體和生物的特性。
SoundEvent(音效事件)註冊:用於註冊自定義音效事件,以便在遊戲中播放特定音效。
public static final DeferredRegister<Item> ITEMS =
DeferredRegister.create(ForgeRegistries.ITEMS, Mymod.MOD_ID);
這邊我們使用DeferredRegister< Item > 表示我目前要註冊的項目是一個物品,我們用ITEMS作為變數名稱
DeferredRegister.create 表示我們要做的是創建一個全新的自定義內容,括號中先填入我們需要Forge創建的註冊表,並表示我們需要的是一個物品的註冊表,第二個填入我們的MOD_ID,讓他識別這個物品是哪個模組的東西。最後我們就擁有了第一個物品註冊器。
怎麼創造出物品且聽下回分解